メインコンテンツまでスキップ
バージョン: DAI 25.2

モデルの構築

Eggplant DAIのモデルは、テストしたいアプリケーション、インターフェース、またはウェブサイトのシンプルな視覚的表現です。モデルはテスト活動を調整するのに役立ち、テストしているUIの側面の表現を含みます。モデルは、有用であるために完全であるか、複雑である必要はありません。 モデルはテスト活動を調整するのに役立ち、テストしているUIの側面の表現を含みます。 モデルは、有用であるために完全である必要も、複雑である必要もありません。

また、スクリプトでテストを実行することを好む場合は、このセクションをスキップして、スクリプトベースの実行の方法に従ってください。

このページでは、モデル作成、バージョニング、操作の基本を説明します。

モデルとは何か?

視覚的には、Eggplant DAIモデルはフローチャートに似ていますが、機能的には、それはよりロードマップのようなものです。ユーザーの旅は、定義したstateやActionの間で任意の数の方向に進むことができます。モデルを実行すると、Eggplant DAIのアルゴリズムが探索的テストを行うために、シミュレーションされたユーザージャーニーがフライに生成されます。 ユーザージャーニーは、あなたが定義したstateやActionへ、そこから、またはその間を、さまざまな方向に進むことができます。 モデルを実行すると、探索的テストを行うために、Eggplant DAIのアルゴリズムがシミュレートされたユーザージャーニーをその場で生成します。

注記

また、モデルからテストケースを作成して、特定のユーザージャーニーをカバーすることもできます。

DAI Model

モデル内のStatesActionsは、UI要素と遷移を表します。 stateは、アプリケーション内の画面、ウェブサイト上のページ、さらにはダイアログボックスのウィンドウなどを指します。 Actionはstateの内部で実行され、ユーザーをstate間で移動させることもできます。 モデルを実行すると、設定したstateやActionを通る可能なユーザージャーニーがEggplant DAIによって自動化されます。

モデルの概要を作成する

Eggplant DAIでモデルを作成する前に、テストしたいインターフェースの部分と、それらの部分がどのように接続されているかを考えてみてください。可能なstateとActionについての簡単な概要やスケッチを作成することで、ユーザーインターフェースでユーザーが遭遇することで、モデルを整理するのに役立ちます。この初期の計画は、Eggplant DAIのワークスペースで行うことができます。 インターフェースでユーザーが遭遇し得るstateやActionの簡単なアウトラインやスケッチを作成しておくと、モデルの整理に役立ちます。 この初期計画は、Eggplant DAIのワークスペースで行うことができます。

モデルの粒度はあなた次第です。 ログインの各手順(ユーザー名の入力、パスワードの入力、OKのクリック)をすべて実行する単一のLogin Actionにしてもよいし、それぞれの手順に対して個別のActionを作成してもかまいません。 ウィザードのパネルやホバー表示のメニューのように、新しい画面やページではないものも、stateとして扱えます。

たとえば、旅行ウェブサイトをテストしている場合、ユーザーはまずウェブサイトに接続するかもしれません。ユーザーが接続すると、最初に見るページはホームページです。ホームページから、ユーザーが次に訪れることができる場所はいくつかあります:検索、マイアカウント、車、フライト、ホテル、レストラン。これらのページのいずれからでも、ユーザーはホームページに戻るか、別のページに移動することを選ぶかもしれません。ある時点で、ユーザーはサイトを終了します。

モデルを構築する

ユーザーが訪れることができる各ページや画面は、Eggplant DAIモデルのstateです。stateでユーザーが実行できるクリックやタップやその他の活動を表現するため、またはユーザーをモデル内のstate間で移動させるためにActionを使用します。

すべての要素名は一意である必要がありますが、要素には一貫性があり意味のある命名規則を定めてください。 すべての要素名は一意である必要がありますが、要素に対して一貫性のある意味のある命名規則を確立します。たとえば、_home_と呼ばれるActionは、ユーザーを_Home page_と呼ばれるstateに移動させるかもしれません。また、_flights_と呼ばれるActionは、ユーザーを_Flights page_と呼ばれるstateに移動させるでしょう。

ヒント

既存のモデルを出発点として利用すると、時間を節約できます。 既存のモデルを出発点として使用することで時間を節約することができます。 Designer > Modelsから、再利用したいモデルを編集してSave Asをクリックします。

以下の指示に従ってモデルを構築します:

  1. Designer > Modelsに移動して、新しいモデルを作成します。 新しいモデルは、タイプStartを持つ1つのstateから始まり、その名前はInitialです。 このstateの名前は、右ペインのState Propertiesタブで変更できます。

    DAI Model Initial State

  2. ツールバーでSaveをクリックします。 ツールバーでSaveをクリックします。新しいモデルのバージョン番号が表示されるCreate a version tagダイアログボックスが表示されます。

  3. OKをクリックして、自動のバージョン管理を許可します。

    :::注意点

    保存するまで変更したモデルを実行することはできません。モデルを初めて保存した後、モデルへの変更は自動的に保存されます。 モデルを初めて保存した後は、モデルへの変更は自動的に保存されます。

    :::

    重要

    Eggplant DAIは同じモデルの同時編集をサポートしていません。他のユーザーがあなたが現在開いているモデルを編集すると、Eggplant DAIは別の名前でモデルを保存するように警告します。 他のユーザーが、あなたが現在開いているモデルを編集すると、Eggplant DAIは別名でモデルを保存するように警告します。

  4. 新しいstateを追加するには、ワークスペースで右クリックして、コンテキストメニューからNew Stateを選択します。また、ツールバーのNew Stateをクリックすることもできます。通常のstateは紫色の背景を持ちます。 ツールバーのNew Stateをクリックすることもできます。 通常のstateは紫色の背景です。

  5. stateにActionを追加するには、stateを選択してその内部を右クリックし、コンテキストメニューからNew Actionを選択します。 ツールバーのNew Actionをクリックすることもできます。 通常のActionは灰色の背景です。

  6. モデルを満たすために必要なだけのstateとActionを作成します。

  7. Action Propertiesタブを使用してActionをstateに接続します。Actionを選択し、Connections from actionメニューのチェックボックスを選択して適切なstateに接続します。 Actionを選択し、Connections from actionメニューのチェックボックスを選択して、適切なstateに接続します。

    Connecting an action to a state DAI

    モデルには、_グローバルAction_を持たせることもできます。 グローバルActionは、ユーザージャーニーの任意の時点で実行され得るActionで、たとえばモバイルデバイスの回転やショッピングサイトでの検索などです。 グローバルActionの詳細は、グローバルActionの作成を参照してください。

  8. ユーザーを前のstateに戻すActionを表現するには、新しいActionを作成します。 そのActionを選択した状態で、Action PropertiesタブのTypeリストからPreviousを選択します。 Previousタイプを選ぶと、そのActionの形状は八角形に変わります。

  9. モデルの出口点を定義するには、Connections from actionメニューで予定されたExit stateにActionを関連付けます。

    An action associated with the Exit state in DAI

  10. モデルを保存します。

準備ができたら、トップメニューからRunをクリックしてモデルのテストを開始します。この段階では、モデルにエラーがないことを確認するために、モデルに対して探索的テストを実行するだけでよいです。SenseTalkスニペットをActionに接続するまでは、モデルは実際のテスト対象システム(SUT)に対して動作しないでしょう。

ヒント

モデルに対するテストの実行について詳しくは、Live Runを参照してください。

モデルに複雑さを追加する

テスト要件が変更になったとき、モデルの複雑さも変わることがあります。ユーザーActionの表現、パスワードの入力やページ上での選択などを追加したり、stateやActionにParameterーを追加したりすることができます。たとえば、スワイプActionを持つモバイルアプリをテストする場合、そのスワイプがどの方向に行うことができるかをParameterーを使用して定義することができます。

2つ以上のActionを所定の順序で発生させる必要がある場合は、それらをsequentにできます。 Action Propertiesタブで、系列の最初のActionのタイプをnormalに設定します。 順に実行する必要がある後続のすべてのActionのタイプをsequentに設定します。 それらのActionを、実行させたい順序で接続します。 Actionのタイプをsequentに変更すると、そのActionの形状は楕円に変わります。 sequent Actionを使用してループを作成することもできます。

この例では、Action10が実行された後にAction11が実行され、それが実行された後にAction12が実行されます。

Sequent actions in a DAI model

Eggplant DAIで重みを調整することで、モデル内のstateやActionの重要度を定義できます。 Eggplant DAIでは、モデル内のstateやActionの重要性を、それらの重みを調整することで定義することができます。重み付けされた要素を含むテストを実行すると、Eggplant DAIの学習アルゴリズムは、テストケースでそれらのActionやstateを重みに応じて多かれ少なかれ頻繁にヒットさせるように調整します。

テストランを終了する最も簡単な方法は、予め定義されたExitstateを使用することですが、Action制限などを使用して自分で終了点を定義することもできます。モデルは、グローバルActionを除くと、何も残っていないstateに到達したときに終了します。あるstate内のすべてのActionが設定した前提条件に失敗した場合、またはstate内のすべてのActionが実行制限を超えた場合(またはこれらの組み合わせの場合)、モデルは終了します。

モデルにスニペットを追加する

Eggplant DAIをFusion Engineと統合している場合は、モデルにスニペットを追加できます。 スニペットは、モデル内のActionやstateに関連付けられる小さなSenseTalkコード片です。 SenseTalkスニペットが関連付けられたEggplant DAIモデルを実行すると、Eggplant DAIでの実行に合わせて、テスト対象システム(SUT)上でモデルが実行されます。

SenseTalkスニペットの使用に関する詳細は、Eggplant DAI と Eggplant Functional の統合およびEggplant DAI モデルとスニペットのリンクを参照してください。

モデルバージョニング

Saveをクリックしてモデルを_明示的に_保存するとき、次のいずれかを選択できます:

  • Create a version tagダイアログボックスでモデルの新しいバージョン名を作成します。

  • 自動生成されるデフォルトの名前を保持します。

    Create a version tag in DAI

新しいバージョンを作成しない場合は、Cancelをクリックします。 新しいバージョンを作成したくない場合は、Cancelをクリックします。モデルが自動的に保存されると、行ったすべての変更がアクティブなバージョンに保存されます。

Designer > Modelsから、いつでも以前のバージョンに戻すことができます。

モデルツリーの操作

作業スペースの左側にあるModel treeは、ツリー形式でモデルを表示します。Actionは、それらに関連付けられたstateの下に表示されます。 Actionは、それに関連付けられたstateの下に表示されます。

The Model Tree

新しいモデルを作成すると、モデルツリーは自動的に以下の4つのstateで構成されます:

  • Initial stateはモデルの出発点です。
  • Error stateは、モデルがエラーを検出したときに呼び出されます。これは、モデル内のチェックが失敗した場合や、SenseTalkスニペット内での失敗によるものかもしれません。 これは、モデル内のチェックの失敗、またはSenseTalkスニペット内での失敗が原因である可能性があります。
  • Cleanup stateは、モデルで最後に呼び出されるstateで、ExitまたはErrorstateの後に発生します。Cleanupstateを使用して、次のstateの前にSUTを整理することができます。つまり、アプリケーションを閉じるなどの作業を行います。 Cleanup stateを使用して、次のstateの前にSUTを整理できます。例えばアプリケーションを閉じるなどです。
  • Exit stateはモデルを終了します。

モデルツリーを使用して、Actionをあるstateから別のstateに移動したり、stateからメインの作業領域に移動してグローバルActionにしたりできます。 移動したいActionを選択し、新しい場所へドラッグします。 配置可能な場所にカーソルを重ねると、選択したActionのハイライトが緑色に変わります。

作業領域で行うのと同じ操作をモデルツリーでも実行できます。 モデルツリーで作業領域と同じ操作を行うことができます。モデルツリーで右クリックしてコンテキストメニューを開き、モデルにAction、state、Parameterを追加できます。また、アイテムの削除、ブレークポイントの追加や削除、コンソールのクリアなどもコンテキストメニューから行うことができます。 また、コンテキストメニューから、項目の削除、ブレークポイントの追加/削除、コンソールのクリアも実行できます。